package cn.tk.service.log.queue;

import java.util.concurrent.BlockingQueue;

/**
 * Created by denglw on 2019/8/17.<br/>
 * Desc: 日志入库消费队列  基类
 */
public abstract class BaseQueue<T> {

    private final BlockingQueue<T> queue;

    BaseQueue(BlockingQueue<T> queue) {
        this.queue = queue;
    }

    /**
     * 消息入列，队列满时直接抛出异常.<br/>
     * @param t 日志对象
     */
    public void add(T t) {
        try {
            queue.add(t);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 消息出列，队列为空时阻塞.<br/>
     * @return 日志对象
     */
    public T take() throws InterruptedException {
        return queue.take();
    }

}
